/**
 * 创建一个函数，调用func时候接收翻转的参数。
 * @param func - 要翻转参数的函数。
 * @returns 返回一个新的函数。
 * @example
 * const flipped = flip(function() {
 *   return toArray(arguments)
 * })
 * const result = flipped(1, 2, 3)
 * // => [3, 2, 1]
 */

export function flip(func: Function): any {
    return function(this, ...args: any[]) {
        return func.apply(this, args.reverse())
    }
}